package com.niubility.server.Impl;


import com.niubility.dao.LableDao;
import com.niubility.entity.Lable;
import com.niubility.server.ILabService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Service
public class LabService implements ILabService {
    @Autowired
    private LableDao labDao;


    //添加新社区
    public boolean addLab(Lable lable) {
        int i=labDao.addLab(lable);
        return i>0?true:false;
    }


    //删除社区
    public boolean delLabById(int[] labIds) {
        int i=labDao.deleteLab(labIds);
        return i>0?true:false;
    }


    //更新社区数据
    public boolean update(Lable lable) {
        int i=labDao.updateLab(lable);
        return i>0?true:false;
    }


    //获得标社区数据
    public Lable loadLabById(int labId) {

        return labDao.loadLabById(labId);
    }

    //获得所有社区数据
    public List<Lable> loadAllLab() {
        List<Lable> lableList=labDao.loadAllLab();
        return lableList;
    }

    //新发布的文章，更新所属社区的labArt字段，即存入新文章的ID
    public boolean newArticle(int artId,int[] labId){//改成标签数组
        int i=labDao.addArticle(artId,labId);
        return i>0?true:false;
    }


    //有人关注了社区，社区关注人数增加
    public boolean changeUsernum(int labId,int value){
        int i=labDao.changeUsernum(labId,value);
        return i>0?true:false;
    }



    //查询指定社区的所有文章ID
    public Set<Integer> loadAllArtId(int[] labIds){
        Set<Integer> hashset= new HashSet<Integer>();
        String artIdStr="";
        for (int i:labIds
             ) {
            Lable lable=labDao.loadLabById(i);
             artIdStr+=lable.getLabArt();
        }
        String[] artIds=artIdStr.split(",");
        for (String artId:artIds) {
            hashset.add(Integer.parseInt(artId));
        }
        return hashset;
    }

    //加载指定数量的新社区
    public List<Lable> loadNewCommu(int counts){
        List<Lable> lableList=labDao.loadNewCommu(counts);
        return lableList;
    }

    //加载热门社区
    public List<Lable> loadHotCommu(int page,int counts){
        int index=(page-1)*counts;
        List<Lable> lableList=labDao.loadHotCommu(index,counts+1);
        return lableList;
    }
    //删除文章，文章减少
    public boolean reduceArt(int artId){
        int i = labDao.reduceArt(artId);
        return i>0?true:false;
    }
}
